package nueva.esperanza.web.resources;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;

public class DatosGenerales implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private static Logger log = Logger.getLogger(DatosGenerales.class);
    public String usuario;
    public String fecha;
    private String correoAsesoria = "sgel@sat.gob.gt";

    public Map pagina;
//    public ManageBean manageBean = new ManageBean();
    //******CONSTANTE DE BEAN DE SEGURIDAD*****
    public static String SEGURIDAD_MB = "SAT_SEGURIDAD_MB"; 




    /**
     * *****************************
     * MANEJO DE DATOS DE SESSION *****************************
     */
    public String getUsuario() {



        /*HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        if (session.getAttribute("SAT_SEGURIDAD_login") != null) {
            usuario = session.getAttribute("SAT_SEGURIDAD_login").toString();*/

        //DESAROLLO Y PRODUCCION
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        usuario = (String) session.getAttribute("SAT_SEGURIDAD_login");
            
        //LOCAL
        usuario="jaixacra";

        /*return ((usuario != null && !usuario.equals("")) ? usuario : "cdquezad");
        } else {
            return "cdquezad";
        }*/

        return usuario;

    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getFecha() {
        Date fechaHora = new Date(System.currentTimeMillis());
        return this.dateToString("dd/MM/yyyy", fechaHora) + "-" + this.dateToString("HH:mm:ss", fechaHora);
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public String dateToString(String strFormat, Date fecha) {
        String myDate = null;
        try {
            if (fecha != null) {
                myDate = new SimpleDateFormat(strFormat).format(fecha);
            }
        } catch (Exception e) {
            System.out.println("Invalid Date String Parser Exception " + e);
        }
        return myDate;
    }

    public void error(Exception e) {
        System.out.println(e);
        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(),
                        null));
    }

    /*@SuppressWarnings("unused")*/
    private void addMessage(String message, FacesMessage.Severity severity) {
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(severity, message, null));
    }

    public void mensaje(String informacion) {
        System.out.println(informacion);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(informacion));
    }

    /**
     * View Info Message
     *
     * @param message - General message
     */
    public void info(String message) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, null));
    }

    /**
     * View Error Message
     *
     * @param message - General message
     */
    public void error(String message) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null));

    }

    /*@Override*/
    protected void finalize() {
        try {
            this.fecha = null;
            this.usuario = null;
            log.info("finalize succesfull : DatosGenerales");
        } catch (Throwable e) {
            log.error(e);
        }
    }

    protected void muestraMensaje(String pMensaje, int pTipoMensaje, String pTitle) {
        JOptionPane optionPane;
        optionPane = new JOptionPane(pMensaje, pTipoMensaje);
        JDialog dialogo = optionPane.createDialog(optionPane, pTitle);
        dialogo.setAlwaysOnTop(true);
        dialogo.setVisible(true);
    }

    /**
     * @return the correoAsesoria
     */
    public String getCorreoAsesoria() {
        return correoAsesoria;
    }

    /**
     * @param correoAsesoria the correoAsesoria to set
     */
    public void setCorreoAsesoria(String correoAsesoria) {
        this.correoAsesoria = correoAsesoria;
    }
}